
; Get supernatural strength - become the devil (not really recommended) :)

; Press FIRE when you have your fists selected to blow up everything on
; front of you.

; Press the ACTION key to cast a ring of fire (and set yourself on fire)
; (for protection).

; Press the JUMP key to fly.

; Press the CROUCH key to visit the underworld.



004F: create_thread crapmod2    ;; devilmod

...

:crapmod2
0001: wait 0 ms 
00D6: if 0 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false crapmod2 
0222: set_player $PLAYER_CHAR health_to 200 
00D6: if 1 
02D7:   player $PLAYER_CHAR currentweapon == 0 
00E1:   key_pressed 0 17 
004D: jump_if_false crapmod3 
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 13.0 -1.0 
020C: create_explosion_with_radius 8 at 1@ 2@ 3@ 
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 26.0 -1.0 
020C: create_explosion_with_radius 8 at 1@ 2@ 3@ 
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 39.0 -1.0 
020C: create_explosion_with_radius 8 at 1@ 2@ 3@ 
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 52.0 -1.0 
020C: create_explosion_with_radius 8 at 1@ 2@ 3@ 
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 65.0 -1.0 
020C: create_explosion_with_radius 8 at 1@ 2@ 3@ 
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 78.0 -1.0 
020C: create_explosion_with_radius 8 at 1@ 2@ 3@ 

0001: wait 250 ms 

:crapmod3
00D6: if 1 
00E1:   key_pressed 0 4 
80E0:   NOT   player $PLAYER_CHAR driving 
004D: jump_if_false crapmod4 
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 0.0 -1.0 
04C4: create_coordinate 10@ 11@ 12@ from_actor $PLAYER_ACTOR offset 0.0 0.0 20.0 
020C: create_explosion_with_radius 1 at 1@ 2@ 3@ 
015F: set camera position  10@ 11@ 12@  0.0  0.0  0.0
0160: point_camera  1@ 2@ 3@  2
0007: 4@ = 0.0  ;; floating-point values 

:crapmod3_2
0001: wait 0 ms 
02F6: 5@ = cosine 4@  ;; sinus swapped with cosine 
0013: 5@ *= 10.0  ;; floating-point values (never used in VC or GTA 3) 
02F7: 6@ = sinus 4@ ;; cosine swapped with sinus 
0013: 6@ *= 10.0  ;; floating-point values (never used in VC or GTA 3) 
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 5@ 6@ -1.0 
020C: create_explosion_with_radius 1 at 1@ 2@ 3@ 
000B: 4@ += 20.0  ;; floating-point values 
00D6: if 0 
0021:   4@ > 340.0  ;; floating-point values 
004D: jump_if_false CRAPMOD3_2 
0006: 16@ = 0  ;; integer values 

:crapmod3wait
0001: wait 0 ms 
0222: set_player $PLAYER_CHAR health_to 200 
00D6: if 0 
0019:   16@ > 2000  ;; integer values 
004D: jump_if_false CRAPMOD3WAIT 
02EB: restore_camera_with_jumpcut

:crapmod4
00D6: if 1 
80E0:   NOT   player $PLAYER_CHAR driving 
00E1:   key_pressed 0 14 
004D: jump_if_false crapmod12 
04D7: lock_actor $PLAYER_ACTOR in_current_position 1 

:crapmod5
0001: wait 0 ms 
00D6: if 0 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false crapmod2 
0222: set_player $PLAYER_CHAR health_to 200 
00D6: if 0 
00E1:   key_pressed 0 14 
004D: jump_if_false crapmod6 
0054: store_player $PLAYER_CHAR position_to 0@ 1@ 2@ 
00D6: if 23 
0021:   0@ > 1480.0  ;; floating-point values 
0023:   -2280.0 > 0@  ;; floating-point values 
0021:   1@ > 1880.0  ;; floating-point values 
0023:   -1880.0 > 1@  ;; floating-point values 
004D: jump_if_false CRAPMOD53 
0055: put_player $PLAYER_CHAR at 0.0 0.0 -100.0 

:crapmod53
04C4: create_coordinate 5@ 6@ 7@ from_actor $PLAYER_ACTOR offset 0.0 10.0 -1.0 
0055: put_player $PLAYER_CHAR at 5@ 6@ 90.0 
0002: jump crapmod5 

:crapmod6
0055: put_player $PLAYER_CHAR at 5@ 6@ -100.0 
04D7: lock_actor $PLAYER_ACTOR in_current_position 0 
0002: jump crapmod2 

:crapmod12
00D6: if 1 
80E0:   NOT   player $PLAYER_CHAR driving 
00E1:   key_pressed 0 18 
004D: jump_if_false crapmod900 
04D7: lock_actor $PLAYER_ACTOR in_current_position 1 

:crapmod13
0001: wait 0 ms 
00D6: if 0 
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false crapmod2 
0222: set_player $PLAYER_CHAR health_to 200 
00D6: if 0 
00E1:   key_pressed 0 18 
004D: jump_if_false crapmod14 
0054: store_player $PLAYER_CHAR position_to 0@ 1@ 2@ 
00D6: if 23 
0021:   0@ > 1480.0  ;; floating-point values 
0023:   -2280.0 > 0@  ;; floating-point values 
0021:   1@ > 1880.0  ;; floating-point values 
0023:   -1880.0 > 1@  ;; floating-point values 
004D: jump_if_false crapmod133 
0055: put_player $PLAYER_CHAR at 0.0 0.0 -100.0 

:crapmod133
04C4: create_coordinate 5@ 6@ 7@ from_actor $PLAYER_ACTOR offset 0.0 10.0 -1.0 
0055: put_player $PLAYER_CHAR at 5@ 6@ -40.0 
0002: jump crapmod13 

:crapmod14
0055: put_player $PLAYER_CHAR at 5@ 6@ -100.0 
04D7: lock_actor $PLAYER_ACTOR in_current_position 0 
0002: jump crapmod2 

:crapmod900
0002: jump crapmod2 
